Мы с Вами создадим клиента и сервер DCOM. Программирование объекта DCOM нечем не отличается от создание объекта COM. Вы воспользуемся ATL COM AppWizard. Создадим приложение NetRunning как EXE Server. К этому приложению добавим ATL класс как Simple Object с именем CCRun для подробностей смотрите "Шаг 10 - Создаем ActiveX с ATL" и создадим метод Run:

С кодом.
STDMETHODIMP CCRun::Run(BSTR bcstr)
{
char chars[255];
wcstombs((CHAR*)&chars,(OLECHAR*)bcstr,sizeof(chars));
WinExec(chars,SW_SHOW);
return S_OK;
}
Можно компилировать и собирать. После этого нужно зарегистрировать элемент на сервере и клиенте. EXE сервер может регистрироваться сам если воспользоваться командой типа
имя_сервера.ехе /regserver
Теперь нужно создать клиента. Обычное приложение на базе диалогового окна с именем CTestRun. В проекте нужно добавить класс COM объекта на основе библиотеки типов.

Для подробностей смотрите "Шаг 11 - Тестируем элемент на VC". Теперь нам нужно добавить использование OLE в проект. В файл stdafx.h ссылку на библиотеки OLE.
#include// MFC support for Internet Explorer 4 Common Controls #include "ole2.h" #ifndef _AFX_NO_AFXCMN_SUPPORT #include // MFC support for Windows Common Controls
Экземпляр класса объекта в классе диалогового окна.
#include "netrunning.h"
class CCTestRunDlg : public CDialog
{
// Construction
public:
CCTestRunDlg(CWnd* pParent = NULL); // standard constructor
ICRun ci;
// Dialog Data
//{{AFX_DATA(CCTestRunDlg)
........
};
Инициализаций OLE и связь с объектом при запуске приложения.
BOOL CCTestRunDlg::OnInitDialog()
{
CDialog::OnInitDialog();
AfxOleInit();
if (!ci.CreateDispatch("NetRunning.CRun.1")) return FALSE;
// Add "About..." menu item to system menu.
................
}
Ну и реакция на нажатие на кнопку.
void CCTestRunDlg::OnButton1()
{
CComBSTR bstr("c:\\Temp\\Notepad.exe");
ci.Run(&bstr);
}
Настройка нужна и DCOM. На клиенте переадресация запроса на сервер. На сервере разрешения быть сервером DCOM и разрешение пользователю использовать DCOM. Подробнее смотри "Шаг 89 - Удаленный запуск компонентов DCOM" и "Шаг 90 - DCOM и безопасность". Итак, давайте общие шаги.
Сама простая ошибка если не будет работать заключается в том что на сервере нет библиотек необходимых объекту для выполнения. Например, msvcrt.dll. Честное слово я два часа бился над запуском компонента только из за того что у клиента не было необходимых DLL. Итак, на клиенте надо, что бы помимо объекта были динамические библиотеки, с котором этот объект связан.
В прилагаем проекте есть и клиент и сервер. Попробуйте очень приятно запускать приложение на удаленном компьютере еще приятнее что мы можем сделать это сами.